package ado

/* com
// CLSID {00000514-0000-0010-8000-00AA006D2EA4}
// IID {00000550-0000-0010-8000-00AA006D2EA4}
type Connection interface {
	com.IDispatch
	GetProperties() (props *com.IDispatch, err error)
	GetConnectionString() (s string, err error)
	PutConnectionString(s string) (err error)
	GetCommandTimeout() (timeout int32, err error)
	PutCommandTimeout(timeout int32) (err error)
	GetConnectionTimeout() (timeout int32, err error)
	PutConnectionTimeout(timeout int32) (err error)
	GetVersion() (version string, err error)
	Close() (err error)
	Execute(commandText string, recordsAffected *com.Variant, options int32) (recordset *Recordset, err error)
	BeginTrans() (transactionLevel int32, err error)
	CommitTrans() (err error)
	RollbackTrans() (err error)
	Open(connectionString, userID, password string, options ConnectOptionEnum) (err error)
	GetErrors() (errors *com.IDispatch, err error)
	GetDefaultDatabase() (defaultDB string, err error)
	PutDefaultDatabase(defaultDB string) (err error)
	GetIsolationLevel() (level IsolationLevelEnum, err error)
	PutIsolationLevel(level IsolationLevelEnum) (err error)
	GetAttributes() (attr int32, err error)
	PutAttributes(attr int32) (err error)
	GetCursorLocation() (cursorLoc CursorLocationEnum, err error)
	PutCursorLocation(cursorLoc CursorLocationEnum) (err error)
	GetMode() (mode ConnectModeEnum, err error)
	PutMode(mode ConnectModeEnum) (err error)
	GetProvider() (provider string, err error)
	PutProvider(provider string) (err error)
	GetState() (state int32, err error)
	OpenSchema(schema SchemaEnum, restrictions com.Variant, schemaID com.Variant) (recordset *com.IDispatch, err error)
	Cancel() (err error)
}

// CLSID {00000507-0000-0010-8000-00AA006D2EA4}
// IID {0000054E-0000-0010-8000-00AA006D2EA4}
type Command interface {
	com.IDispatch
	GetProperties() (props *com.IDispatch, err error)
	GetActiveConnection() (conn *Connection, err error)
	PutrefActiveADOConnection(conn *Connection) (err error)
	PutActiveConnection(conn com.Variant) (err error)
	GetCommandText() (s string, err error)
	PutCommandText(s string) (err error)
	GetCommandTimeout() (timeout int32, err error)
	PutCommandTimeout(timeout int32) (err error)
	GetPrepared() (prepared bool, err error)
	PutPrepared(prepared bool) (err error)
	Execute(recordsAffected *com.Variant, parameters *com.Variant, options ExecuteOptionEnum) (recordset *Recordset, err error)
	CreateParameter(name string, typ DataTypeEnum, direction ParameterDirectionEnum, size uintptr, value interface{}) (param *Parameter, err error)
	GetParameters() (params *Parameters, err error)
	PutCommandType(cmdType CommandTypeEnum) (err error)
	GetCommandType() (cmdType CommandTypeEnum, err error)
	GetName() (name string, err error)
	PutName(name string) (err error)
	GetState() (state int32, err error)
	Cancel() (err error)
	PutrefCommandADOStream(stream *com.IUnknown) (err error)
	GetCommandStream() (stream interface{}, err error)
	PutDialect(dialect string) (err error)
	GetDialect() (dialect string, err error)
	PutNamedParameters(namedParameters bool) (err error)
	GetNamedParameters() (namedParameters bool, err error)
}

// IID {0000050C-0000-0010-8000-00AA006D2EA4}
type Parameter interface {
	com.IDispatch
	GetProperties() (props *com.IDispatch, err error)
	GetName() (name string, err error)
	PutName(name string) (err error)
	GetValue() (val interface{}, err error)
	PutValue(val interface{}) (err error)
	GetType() (dataType DataTypeEnum, err error)
	PutType(dataType DataTypeEnum) (err error)
	PutDirection(parmDirection ParameterDirectionEnum) (err error)
	GetDirection() (parmDirection ParameterDirectionEnum, err error)
	PutPrecision(precision byte) (err error)
	GetPrecision() (precision byte, err error)
	PutNumericScale(scale byte) (err error)
	GetNumericScale() (scale byte, err error)
	PutSize(size uintptr) (err error)
	GetSize() (size uintptr, err error)
	AppendChunk(val interface{}) (err error)
	GetAttributes() (parmAttribs int32, err error)
	PutAttributes(parmAttribs int32) (err error)
}

// IID {0000050D-0000-0010-8000-00AA006D2EA4}
type Parameters interface {
	com.IDispatch
	GetCount() (c int32, err error)
	_NewEnum() (obj *com.IUnknown, err error)
	Refresh() (err error)
	Append(object *Parameter) (err error)
	Delete(index interface{}) (err error)
	GetItem(index interface{}) (object *Parameter, err error)
}

// IID {00000556-0000-0010-8000-00AA006D2EA4}
type Recordset interface {
	com.IDispatch
	GetProperties() (props *com.IDispatch, err error)
	GetAbsolutePosition() (position PositionEnum, err error)
	PutAbsolutePosition(position PositionEnum) (err error)
	PutrefActiveADOConnection(conn *Connection) (err error)
	PutActiveConnection(conn interface{}) (err error)
	GetActiveConnection() (conn interface{}, err error)
	GetBOF() (bof bool, err error)
	GetBookmark() (bookmark interface{}, err error)
	PutBookmark(bookmark interface{}) (err error)
	GetCacheSize() (cacheSize int32, err error)
	PutCacheSize(cacheSize int32) (err error)
	GetCursorType() (cursorType CursorTypeEnum, err error)
	PutCursorType(cursorType CursorTypeEnum) (err error)
	GetEOF() (eof bool, err error)
	GetFields() (fields *Fields, err error)
	GetLockType() (lockType LockTypeEnum, err error)
	PutLockType(lockType LockTypeEnum) (err error)
	GetMaxRecords() (maxRecords int32, err error)
	PutMaxRecords(maxRecords int32) (err error)
	GetRecordCount() (n int32, err error)
	PutrefSource(cmd *Command) (err error)
	PutSource(conn string) (err error)
	GetSource() (source interface{}, err error)
	AddNew(fieldList interface{}, values interface{}) (err error)
	CancelUpdate() (err error)
	Close() (err error)
	Delete(affectRecords AffectEnum) (err error)
	GetRows(rows int32, start interface{}, fields interface{}) (value interface{}, err error)
	Move(numRecords uintptr, start interface{}) (err error)
	MoveNext() (err error)
	MovePrevious() (err error)
	MoveFirst() (err error)
	MoveLast() (err error)
	Open(source interface{}, activeConnection interface{}, cursorType CursorTypeEnum, lockType LockTypeEnum, options int32) (err error)
	Requery(options int32) (err error)
	_xResync(affectRecords AffectEnum) (err error)
	Update(fields interface{}, values interface{}) (err error)
	GetAbsolutePage() (page PositionEnum, err error)
	PutAbsolutePage(page PositionEnum) (err error)
	GetEditMode() (mode EditModeEnum, err error)
	GetFilter() (criteria interface{}, err error)
	PutFilter(criteria interface{}) (err error)
	GetPageCount() (n uintptr, err error)
	GetPageSize() (pageSize int32, err error)
	PutPageSize(pageSize int32, err error)
	GetSort() (criteria string, err error)
	PutSort(criteria string) (err error)
	GetStatus() (status int32, err error)
	GetState() (state int32, err error)
	_xClone() (rs *Recordset, err error)
	UpdateBatch(affectRecords AffectEnum) (err error)
	CancelBatch(affectRecords AffectEnum) (err error)
	GetCursorLocation() (cursorLoc CursorLocationEnum, err error)
	PutCursorLocation(cursorLoc CursorLocationEnum) (err error)
	NextADORecordset() (recordsAffected interface{}, rs *Recordset, err error)
	Supports(cursorOptions CursorOptionEnum) (b bool, err error)
	GetCollect(index interface{}) (value interface{}, err error)
	PutCollect(index interface{}, value interface{}) (err error)
	GetMarshalOptions() (marshal MarshalOptionsEnum, err error)
	PutMarshalOptions(marshal MarshalOptionsEnum) (err error)
	Find(criteria string, skipRecords uintptr, searchDirection SearchDirectionEnum, start interface{}) (err error)
	Cancel() (err error)
	GetDataSource() (dataSource *com.IUnknown, err error)
	PutrefDataSource(dataSource *com.IUnknown) (err error)
	_xSave(fileName string, persistFormat PersistFormatEnum) (err error)
	GetActiveCommand() (cmd *Command, err error)
	PutStayInSync(stayInSync bool) (err error)
	GetStayInSync() (stayInSync bool, err error)
	GetString(stringFormat StringFormatEnum, numRows int32, colunDelimiter string, rowDelimiter string, nullExpr string) (ret string, err error)
	GetDataMember() (dataMember string, err error)
	PutDataMember(dataMember string) (err error)
	CompareBookmarks(bookmark1 interface{}, bookmark2 interface{}) (compare CompareEnum, err error)
	Clone(lockType LockTypeEnum) (rs *Recordset, err error)
	Resync(affectRecords AffectEnum, resyncValues ResyncEnum) (err error)
	Seek(keyValues interface{}, seekOption SeekEnum) (err error)
	PutIndex(index string) (err error)
	GetIndex() (index string, err error)
	Save(desination interface{}, persistFormat PersistFormatEnum) (err error)
}

// IID {00000564-0000-0010-8000-00AA006D2EA4}
type Fields interface {
	com.IDispatch
	GetCount() (c int32, err error)
	_NewEnum() (obj *com.IUnknown, err error)
	Refresh() (err error)
	GetItem(index interface{}) (item *Field, err error)
	_Append(name string, typ DataTypeEnum, definedSize uintptr, attrib FieldAttributeEnum) (err error)
	Delete(index interface{}) (err error)
	Append(name string, typ DataTypeEnum, definedSize uintptr, attrib FieldAttributeEnum, fieldValue interface{}) (err error)
	Update() (err error)
	Resync(resyncValues ResyncEnum) (err error)
	CancelUpdate() (err error)
}

// IID {00000569-0000-0010-8000-00AA006D2EA4}
type Field interface {
	com.IDispatch
	GetProperties() (props *com.IDispatch, err error)
	GetActualSize() (size uintptr, err error)
	GetAttributes() (attr int32, err error)
	GetDefinedSize() (size uintptr, err error)
	GetName() (name string, err error)
	GetType() (typ DataTypeEnum, err error)
	GetValue() (val interface{}, err error)
	PutValue(val interface{}) (err error)
	GetPrecision() (precision byte, err error)
	GetNumericScale() (numericScale byte, err error)
	AppendChunk(data interface{}) (err error)
	GetChunk(length int32) (data interface{}, err error)
	GetOriginalValue() (val interface{}, err error)
	GetUnderlyingValue() (val interface{}, err error)
	GetDataFormat() (df *com.IUnknown, err error)
	PutrefDataFormat(df *com.IUnknown) (err error)
	PutPrecision(precision byte) (err error)
	PutNumericScale(scale byte) (err error)
	PutType(dataType DataTypeEnum) (err error)
	PutDefinedSize(size uintptr) (err error)
	PutAttributes(attributes int32) (err error)
	GetStatus() (status int32, err error)
}
*/
